home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-05
/
tcomp14.zip
/
TCOMP.DOC
< prev
next >
Wrap
Text File
|
1993-02-08
|
7KB
|
173 lines
WHAT IS TCOMP?
TCOMP exists because I had an unknown problem that was
causing a random file corruption that I couldn't figure out.
Data files and executable files were mysteriously being
corrupted in my PC and I had no way of telling if the
corruption was caused by a bad server, bad cabling, or my
local PC. The only troubling shooting help I could get was
the standard "remove all of your TSRs and Device Drivers and
see if your local hardware is causing the problem".
Unfortunately, my problem was a DOS session in Windows being
hung in a networked environment as I compiled software. I
couldn't very well repeat my problem in a simpler
environment since all of my development environment came
across the LAN and it was only in my complete environment
that the problem occurred.
TCOMP is a diagnostic program I wrote to try and get a
handle on the symptom. It still doesn't tell you who is at
fault. But it captures and saves the bad files as data
files instead of letting the Windows DOS emulator hang
accessing them as executable ones. In my case it told me
which of our two file servers was exhibiting this strange
symptom. It also let me analyze the corrupted files to see
what pattern they had.
WHAT DOES TCOMP DO?
TCOMP uses a starting LAN location and file
specification that you supply and then repeatably transfers
the files found to your local HDD, checking each transfer
for integrity with a simple checksum. It recursively
searches for files to use starting from the LAN location you
specify. It allows you to control the name suffix of the
files checked. It allows you to transfer either standard or
random block sizes to test for LAN driver errors.
When a bad file is found (checksum of current transfer
doesn't match checksum of initial read or size is
different), it is saved to a local directory location that
you supply. The entire bad file is saved along with some
other information about the failure: full path of bad file,
date/time stamp of original file, size of original file,
block size being read when file failed, and whether the file
failed with a bad checksum or with a size corruption.
Since I like feedback in my diagnostic programs, TCOMP
tells you lots of worthless info for each file it is
checking. It counts 1K, 10K and 100K sizes as the reading
and checking phases run, so you will know how big the file
being read is. It also tells you how many cumulative phases
(or passes through the selected file set) have run and how
many errors have been found. The file count for the current
phase is displayed so you will know how far along the
checking is. When a bad file is found the screen also
displays information about the error. This information is
also saved to disk along with the bad file. It also tells
you the block size the current file is being read with.
HOW DOES TCOMP DO IT'S JOB?
TCOMP first does a file count of the location and file
specification requested to make sure that it can handle the
number of files selected. It also tells you what the total
transfer size will be so you can make sure it is larger than
any caches you might have active. Then it does a phase that
searches each of those files to build the checksum list that
will be used for all subsequent reads. From this point on
it loops for the number of phases requested-- or forever or
until you abort it-- reading the file set and comparing each
new checksum and size against the saved ones.
HOW DO YOU CONTROL TCOMP?
Typing "tcomp" from the command line will display it's
syntax, a short example and a brief explanation:
d:\code\tools\src>tcomp
tcomp v1.4
usage: tcomp spath dpath fspec lastphase [blksize]
ex: tcomp z:\public d: *.exe 3 0
will do one full pass,
create or use d:\tdir for local storage,
and will randomize the file request sizes
files selected will iterate 'lastphase'-2 times
'lastphase' of -1 runs forever
'blksize' must be <= 10000 (def)
'blksize' == 0 means make each file request random sized
"spath" is the source path to use a the directory root
for the recursive file search.
"dpath" is the root to use for the temporary files read
for the file set and as a starting point to store any bad
files captured. A directory called TDIR will always be
created beneath "dpath". Any found bad files will
sequentially be put in subdirectories beneath
"dpath\TDIR\ERRxxx, where xxx is decimal number.
"fspec" is the simple file specification to qualify
files to check with. Some examples are: *.c, *.* and
*.exe.
"lastphase" is the phases of testing to run through.
Phase 0 signs on but doesn't do much useful. Phase 1 does
the count of files to check and their size. Phase 2 does
the count and size checks, and then does the first pass
through reading all of the files to build their checksums.
Phase 3 or greater controls testing for a finite number of
times. The number of times the file set will be read and
compared will be "lastphase" minus 2; using "lastphase" = 10
reads the file set 8 times. To make it run until you abort
it (control-c) use a "-1" for "lastphase".
"blksize" is optional and control the file request size
and (indirectly) the LAN packet block/deblock size. The
default is 10000 bytes, and will be the fastest. You can
set it to any other smaller size you want. Setting
"blksize" to 0 causes each new file and each time through
the file set to choose a different file request size. All
requests for the current file will be the same size.
The output display for the current file status shows a
'.' for each 1K read, a '-' for each 10K read, and a '=' for
each 100K read. These characters usually erase as they go
from one order of magnitude to another so you can tell the
rough file size by reading the ='s, -'s and .'s
LIMITATIONS OF TCOMP:
1) No more than 1000 files in a file set
2) Date/time stamp of saved bad file doesn't match original
3) Selected blocksize must be less than 10000 bytes
4) Always creates \TDIR to store bad files in
5) Saved subdirectory names stop at \ERR999
OTHER STANDARD STUFF:
License
-------
Copyright (C) Mark Bice 1993.
All rights reserved.
Disclaimer and License
YOUR FIRST USE OF THIS SOFTWARE CONSTITUTES AGREEMENT TO THE
FOLLOWING PROVISIONS. IF YOU DO NOT AGREE TO THEM, PLEASE
DO NOT USE THIS PROGRAM!
TCOMP is a copyrighted, proprietary program offered "as is",
without any warranty of merchantability or fitness for a
particular purpose, performance, or otherwise; all
warranties are expressly disclaimed. By using TCOMP, you
agree that the author will not be liable for any use of (or
inability to use) or performance of this product, or for any
damages whatsoever.
This software is being distributed as a Freeware. You may
use this program freely. You may also copy and distribute
this program, as long as all the files are distributed
intact in a single archived file. You may not sell this
program, and you may charge only nominal fee for
distribution not exceeding $5.00 a copy.
I would appreciate any bug reports, comments or suggestions.
Please contact me at:
US Mail: Mark Bice
17619 N. 63rd Ave.
Glendale, AZ 85308
CompuServe: 72641,607